权限管理 - 技术设计
1、权限是什么?
权限包括了功能权限和数据权限:
功能权限是系统执行权限控制的基本单元,包括页面权限、菜单权限、按钮权限等。
数据权限包括基础数据、业务数据、资源数据等。
2、ACL 基于用户的权限管理模型
直接把菜单权限绑定在用户账号上的方式就叫做ACL
3、RBAC 基于角色的权限管理模型
用户管理
角色管理
权限管理
前端路由设计
https://example.com/${项目名}/${菜单code}/${菜单code}
例子:xxx管理系统 -> 营销活动 -> 优惠卷管理
https://example.com/tz_cloud_system/marketing/coupon
后台权限字段配置
- name 菜单名称
- path 菜单路径
- type 类型(菜单、按钮)
- parent 当前菜单的父级
- hidden 当前菜单是否在菜单栏中显示
- sort 当前菜单显示的顺序
功能权限分类
按钮(button)权限 选项卡(tab)权限
- 增
- 删
- 改
- 查
管理后台配置
- 第一步配置权限。
- 第二步配置角色,并勾选拥有的权限。
- 第三部配置用户,并勾选用户的角色。
前端实现
- 第一步用户登录系统。
- 第二步通过接口拿到菜单权限与按钮权限。
- 第三步遍历菜单权限,生成菜单。
- 第四步遍历菜单权限,通过Vue动态注册路由添加用户可访问的页面。并且通过异步加载组件的形式挂载页面。
- 第五步在页面中通过指令v-auth、v-if、v-show、render函数中动态节点的形式控制按钮是否显示。